using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace DAL_Acceso.a.Datos
{
    public class FabricaDeIntermediarios
    {
        private static FabricaDeIntermediarios factory;
        private static ArrayList Intermediarios;
 
        public static void setIntermediario(IntermediarioPersistenciaRelacional intermediario)
        {
            if (!Intermediarios.Contains(intermediario))
            {
                Intermediarios.Add(intermediario);
            }
        }


        private FabricaDeIntermediarios() { }

        public FabricaDeIntermediarios getInstance() {
            return new FabricaDeIntermediarios();
        }
        public static IntermediarioPersistenciaRelacional newIntermediario(Type tipoObjeto){//nombre) { 
            /* deberia agregar una alternativa por cada tipo */
            //if (nombre == "Usuario")
            //    return new intermediarioUsuarios();
            IntermediarioPersistenciaRelacional valRetorno = null;

            for (int i = 0; i < Intermediarios.Count; i++)
			{
			    if (tipoObjeto.Equals(Intermediarios[i].GetType()))
	            {
                    valRetorno = (IntermediarioPersistenciaRelacional)Intermediarios[i];
                    break;
	            }
			}
            return valRetorno;
        }

        public static IntermediarioPersistenciaRelacional newIntermediario(string clase)
        {
            throw new Exception("The method or operation is not implemented.");
        }
    }
}
